package com.serviportales.serviquality.dao;

import java.io.Serializable;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.serviportales.serviportales.dao.GenericHibernateDAO;
import com.serviportales.serviquality.model.Proyecto;

@Repository
public class ProyectoDAO extends GenericHibernateDAO<Proyecto> {

	private static final long serialVersionUID = 1L;

	@Override
	public DetachedCriteria getBasicDetachedCriteria(Proyecto proyecto) {
		DetachedCriteria criteria = DetachedCriteria.forClass(Proyecto.class);
		if (proyecto.getCodigo() != null) {
			criteria.add(Restrictions.like("codigo", proyecto.getCodigo(), MatchMode.ANYWHERE));
		}
		if (proyecto.getNombre() != null) {
			criteria.add(Restrictions.like("nombre", proyecto.getNombre(), MatchMode.ANYWHERE));
		}
		if (proyecto.getDescripcion() != null) {
			criteria.add(Restrictions.like("descripcion", proyecto.getDescripcion(), MatchMode.ANYWHERE));
		}
		if (proyecto.getEstadoRegistro() != null && proyecto.getEstadoRegistro().getCodigo() != null) {
			criteria.add(Restrictions.eq("estadoRegistro.codigo", proyecto.getEstadoRegistro().getCodigo()));
		}
		return criteria;
	}

	public Proyecto selectByID(Serializable codigo) {
		return getHibernateTemplate().get(Proyecto.class, codigo);
	}
}
